/*
* 为什么写数据模型？
* 写好数据模型，对后期维护至关重要。
* 供应商--供应商银行账户
* 1.这两个实体在供应商维护页面有新增与编辑，在表单里面也有新增与编辑。
* 2.并且在这两个地方新增前端传入的字段不一致，字段不一致想关联的实体字段校验也不一致
* 3.迭代重构之后，出现一些重复字段，后端短时间内无法去掉
* 如果不把模型单独写出来，对特殊字段解释一番，
* 那么后来的维护者，就需要在代码里面去各种梳理，很费时间
* */

/*
* 1.在供应商维护界面，都是新建供应商，再进入供应商详情页面，创建银行账户
* 2.在表单选择付款方的时候，可以新建供应商，也可以在  已有供应商上创建银行账户 用 supplierBankFormCreateModel
* */
let supplierBankModel = {
  id: "",
  bankAccount: "",//"银行账号"
  bankAddress: "-",//地址
  bankCode: "",//银行代码
  bankName: "",//银行名称
  bankOpeningBank: "",//? 为了业务兼容 === bankName
  bankOpeningCity: "-",//? 为了业务兼容 === bankAddress
  bankOperatorNumber: "",//？ 为了业务兼容 === bankCode
  bankType: "custom",//银行类型
  companyOid: "",//当前公司oid
  country: "",//国家名称
  primaryFlag: false,//是否是主账户
  venBankNumberName: "",//银行户名
  venInfoId: "",//供应商id
  venNickOid: "",//供应商代码
  venType: 1002,//供应商状态
};
//表单上创建银行账户
let supplierBankFormCreateModel = {
  id: "",
  bankAccount: "",//"银行账号"
  bankAddress: "-",//地址
  bankCode: "",//银行代码
  bankName: "",//银行名称
  bankOpeningCity: "-",//? 为了业务兼容 === bankAddress
  bankOperatorNumber: "",//？ 为了业务兼容 === bankCode
  bankOpeningBank: "",//? 为了业务兼容 === bankName
  bankType: "custom",//银行类型
  companyOid: "",//当前公司oid
  country: "",//阿尔巴尼亚 国家名称
  primaryFlag: false,//是否是主账户
  venBankNumberName: "",//银行户名
  venInfoId: "",//供应商id
  venNickOid: "",//供应商代码
  venType: 1002,//供应商状态

  venderTypeId: "",//供应商类型id
  source: "",//供应商适用范围 集团级 TENANT  公司级 COMPANY
  venderCode: "",//供应商代码 ?
  venNickname: "",//供应商名称
  venOperatorName: "",//创建人姓名
  venOperatorNumber: "",//创建人工号，为了业务兼容 === employeeID
};
//表单上创建的时候，字段稍微不一样
let supplierBankFormModel = {
  bankAccount: "",//"银行账号"
  bankCode: "",//银行代码
  bankName: "",//银行名称
  bankOpeningBank: "",//? 为了业务兼容 === bankName
  bankOpeningCity: "",//? 为了业务兼容 === bankAddress
  primaryFlag: false,//是否是主账户
  venBankNumberName: "",//银行户名
};

let supplierModel = {
  tenantId: "",
  //基础信息
  id: "",
  venType: 1001,//状态 启用 1001 ， 禁用 1002
  _venType: true,// venType 布尔

  venderCode: "",//供应商代码 ?
  venNickOid: "",//? 为了业务兼容 === venNickOid
  venderTypeId: "",//供应商类型id
  vendorTypeCode: "",//供应商类型代码
  venderTypeName:"",//供应商类型名称

  venNickname: "",//供应商名称
  effectiveDate: "",//启用日期
  employeeID: "",//创建人工号
  venOperatorName: "",//创建人姓名
  venOperatorNumber: "",//创建人工号，为了业务兼容 === employeeID
  source: "",//供应商适用范围 集团级 TENANT  公司级 COMPANY
  autoCodeMark: "",//是否自动编码

  //其他信息
  artificialPerson: "",// 法人代表
  taxIdNumber: "",// 税务登记号
  contact: "",// 联系人
  contactPhone: "",//联系人电话
  contactMail: "",// 邮箱
  fax: "", // 传真
  address: "", // 地址
  notes: "", // 备注

  venBankAccountBeans: [supplierBankModel],
};
//表单上创建的时候，字段稍微不一样
let supplierFormModel = {
  autoCodeMark: false,//是否自动编码
  companyOid: "",
  source: "",//供应商适用范围 集团级 TENANT  公司级 COMPANY
  userOid: "",//当前用户id
  venNickname: "",//供应商名称
  venOperatorName: "",//用户姓名
  venOperatorNumber: "",//用户工号
  venType: 1001,//状态 启用 1001 ， 禁用 1002
  _venType: true,// venType 布尔
  venderCode: "",//供应商代码
  venderTypeId: "",//供应商类型id
  venderTypeName:"",//供应商类型名称
  venBankAccountBeans: [supplierBankFormModel],
};
export {
  supplierModel,
  supplierBankModel,
  supplierFormModel,
  supplierBankFormModel,
  supplierBankFormCreateModel,//表单上基于供应商创建银行账户
}
